// 引入createSlice,用来生成action和reducer
import { createSlice } from "@reduxjs/toolkit"

// 这里是添加配置的
// redux-toolkit根据我们的配置生成一个对象,我们用变量接收,这个变量中会有一个reducer和action属性
// 最后要使用,我们直接暴露然后引用即可
const countSlice = createSlice({
    // action中type的命名空间,就是之前的type标识
    name:'counter',
    // reducer提供的初始值,也就是引用store的时候初次返回的数据
    initialState:{
        count:0
    },
    // reducer配置---reducers
    reducers:{
        // reducer中的处理函数会接收两个参数,分别是当前reducer中上一次的值&本次dispatch的action对象
        // action对象中有一个payload,就是用户调用action函数传递的参数
        // 这里的处理函数就是我们用来接收并传回数据用的
        increment(prev,action){
            prev.count=prev.count+action.payload
        },
        decrement(prev,action){
            prev.count=prev.count-action.payload
        }
    }
})

// 通过createSlice创建的对象上有一个reducer属性,直接得到就是当前reducer的函数,暴露出去,引入就可以使用
export default countSlice.reducer
// 同样也会根据配置生成actions,暴露出去之后,在引入也同样使用
export const {increment,decrement}=countSlice.actions




// 注意:initialState    reducers    单词书写一定要正确